/**
 * 领航资源库接口封装
 */
import request from "@/utils/request";
import axios from "axios";
import Conf from "@/utils/conf";
const { VITE_APP_PARTY_BUILDING_EVALUATION_BASE_API } = Conf;
axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
axios.defaults.withCredentials = true; // 允许携带cookie

/**
 * 获取资源库列表
 * @param url 各类库的地址参数
 * @param query 查询参数
 */
export function libraryList(url, query) {
  return request({
    url: `/manage/${url}/list`,
    method: "get",
    params: query,
  });
}

/**
 * 修改/新增资源库
 * @param url 各类库的地址参数
 * @param data 修改/新增的数据列表
 */
export function renewalLibrary(url, data) {
  return request({
    url: `manage/${url}/saveOrUpdate`,
    method: "post",
    data,
  });
}

/**
 * 保存并提交审核/通过
 * @param url 各类库的地址参数
 * @param data 修改/新增的数据列表
 */
export function saveAndSubmit(url, data) {
  return request({
    url: `manage/${url}/saveAndSubmit`,
    method: "post",
    data,
  });
}
/**
 * 删除资源库
 * @param url 各类库的地址参数
 * @param id 案例id
 */
export function removeLibrary(url, id) {
  return request({
    url: `manage/${url}/remove/${id}`,
    method: "delete",
  });
}

/**
 * 附件管理 图片上传
 * @param data 文件数据
 */
export function attachmentLibrary(data) {
  return request({
    url: "manage/attachment/saveOrUpdate",
    method: "post",
    data,
    headers: {
      "Content-Type": "multipart/form-data",
    },
  });
}

/**
 * 宣讲附件上传
 * @param url 各类库的地址参数
 * @param data 文件数据
 */
export function talentPoolUpload(url, data) {
  return request({
    url: `manage/${url}/upload`,
    method: "post",
    data,
    headers: {
      "Content-Type": "multipart/form-data",
    },
  });
}

/**
 * 宣讲附件下载
 * @param url 附件下载地址
 */
export function showAttachmentDownload(url) {
  return request({
    url,
    method: "get",
    responseType: "blob",
  });
}

/**
 * 附件回显
 * @param query
 */
export function attachmentEcho(query) {
  return request({
    url: "manage/attachment/showAttachment",
    method: "get",
    params: query,
    responseType: "blob",
  });
}

/**
 * 宣讲库提交审核
 * @param url 各类库的地址参数
 * @param data 需要审核的id列表
 */
export function reviewSubmit(url, data) {
  return request({
    url: `manage/${url}/submitDraft`,
    method: "post",
    data,
  });
}

/**
 * 宣讲库审核通过
 * @param url 各类库的地址参数
 * @param data 需要审核的id列表
 */
export function passExamination(url, data) {
  return request({
    url: `manage/${url}/submit`,
    method: "post",
    data,
  });
}

/**
 * 宣讲库审核退回
 * @param url 各类库的地址参数
 * @param data 需要审核的id列表
 */
export function auditReturn(url, data) {
  return request({
    url: `manage/${url}/back`,
    method: "post",
    data,
  });
}

/**
 * 领航宣讲库展示
 * @param url 各类库的地址参数
 * @param query 查询参数
 */
export function preachShow(url, query) {
  return request({
    url: `manage/${url}/view`,
    method: "get",
    params: query,
  });
}

/**
 * 附件在线编辑
 * @param query 参数 附件id
 */
export function onlineEditing(query) {
  return request({
    url: "/manage/attachment/onlineEdit",
    method: "get",
    params: query,
  });
}

/**
 * 附件在线下载
 * @param query 参数 附件id
 */
export function downloadOnline(query) {
  return request({
    url: "manage/attachment/downloadFile",
    method: "get",
    params: query,
  });
}

/**
 * 附件在线预览
 * @param query 附件id
 */
export function attachmentPreview(query) {
  return request({
    url: "/manage/attachment/onlinePreview",
    method: "get",
    params: query,
  });
}

/**
 * 视频播放
 * @param query 参数 videoPlayId
 */
export function videoPlayback(query) {
  return request({
    url: "manage/attachment/videoPlayPath",
    method: "get",
    params: query,
  });
}

/**
 * 获取附件详情
 * @param id 附件id
 */
export function getAttachmentDetail(id) {
  return request({
    url: "manage/attachment/detail",
    method: "get",
    params: { id },
  });
}

/**
 * 根据用户id返回党组织和公司
 * @param id 人员id
 */
export function queryUsers(id) {
  return axios({ url: Conf.VITE_BRANCH_URL + id });
}

/**
 * 根据用户id返回党组织和公司(UOM)
 * @param id 人员id
 */
export function queryUserDetail(id) {
  return request({
    url: "/people/select/queryUserDetail?employeeNo=" + id,
    method: "get",
  });
}

/**
 * 根据党组织id返回公司信息
 * @param id 党支部id
 */
export function queryCompany(id) {
  return axios({ url: Conf.VITE_COMPANY_URL + id });
}

/**
 * 查询组织列表接口
 * @param data
 */
export function getBranches(data) {
  return request({ url: "/people/select/queryDepartments", method: "get", params: data });
}

/**
 * 查询人员列表接口
 * @param data
 */
export function getUsers(data) {
  return request({ url: "/people/select/queryUsers", method: "get", params: data });
}

/**
 * 查询组织列表接口
 * @param data
 */
export function getDeptList(data) {
  return request({ url: "/people/select/queryDepartments", params: data, baseURL: VITE_APP_PARTY_BUILDING_EVALUATION_BASE_API });
}

/**
 * 查询人员列表接口
 * @param data
 */
export function getPersonnelInformation(data) {
  return request({ url: "/people/select/queryUsers", params: data, baseURL: VITE_APP_PARTY_BUILDING_EVALUATION_BASE_API });
}

/**
 * 导入模版
 * @param url 各类库的地址参数
 * @param data 文件数据
 */
export function importTemplate(url, data) {
  return request({
    url: `manage/${url}/import`,
    method: "post",
    data,
    headers: {
      "Content-Type": "multipart/form-data",
    },
  });
}

/**
 * 导出模版
 * @param url 各类库的地址参数
 * @param data
 */
export function exportTemplate(url, data) {
  return request({
    url: `manage/${url}/download`,
    method: "post",
    data,
    responseType: "blob",
  });
}

/**
 * 获取详情
 * @param url 各类库的地址参数
 * @param query
 */
export function getDetail(url, query) {
  return request({
    url: `manage/${url}/detail`,
    method: "get",
    params: query,
  });
}

/**
 * 后台管理 模版导出
 * @param url 各类库的地址参数
 */
export function downloadTemplate(url) {
  return request({
    url: `manage/${url}/download-template`,
    method: "get",
    responseType: "blob",
  });
}
